Various forms of storage systems are used today. These forms include direct attached storage (DAS) network attached storage (NAS) systems, storage area networks (SANs), and others. Network storage systems are commonly used for a variety of purposes, such as providing multiple users with access to shared data, backing up data and others.
A storage system typically includes at least one computing system executing a storage operating system for storing and retrieving data on behalf of one or more client computing systems (“clients”). The storage operating system stores and manages shared data containers in a set of mass storage devices of a storage sub-system. Typically, a storage sub-system receives various workloads (i.e. requests) that compete for processing resources of the storage sub-system. The attributes of the various workloads vary, for example, some maybe of high importance and others of low importance. Conventional storage sub-systems are not able to efficiently manage I/Os (i.e. requests for reading or writing data) based on I/O attributes because they are often unaware of the attributes or any change in the attributes. Continuous efforts are being made to better manage data flow through storage sub-systems.